package com.example.service.implService;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.dao.StuInfoDao;
import com.example.mapper.StuMapper;
import com.example.pojo.StuInfo;
import com.example.pojo.dto.StuInfoDTO;
import com.example.service.StuInfoService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

@Service
public class StuInfoServiceImpl implements StuInfoService {
    @Resource
    private StuInfoDao stuInfoDao;

    @Resource
    private StuMapper stuMapper;

    @Override
    public List<StuInfo> stuInfoList() {
        return stuInfoDao.stuInfoList();
    }

    @Override
    public StuInfoDTO stuInfoDtoByID(Long stuId) {
        return stuInfoDao.stuInfoDtoByID(stuId);
    }

    //多条件查询 姓名模糊查询&年级
    @Override
    public IPage<StuInfo> getStuByNameAndClassLevels(int currentPage, int limit, String name, List<String> list){
        // 创建分页对象
        Page<StuInfo> page = new Page<>(currentPage, limit);
        // 条件
        QueryWrapper<StuInfo> queryWrapper = new QueryWrapper<>();
        if (name!=null && name!="" && !name.equals("靠") ){
            queryWrapper.like("name",name);
        }
        // 检查list列表是否非空并设置in查询条件
        if (list != null && !list.isEmpty()) {
            queryWrapper.in("class_grade_level", list); // 假设classLevel是学生表中表示班级等级的字段
        }
        System.out.println("我是数组"+list);
        return stuMapper.selectPage(page,queryWrapper);

//        System.out.println("1111111");
//        QueryWrapper<StuInfo> queryWrapper = new QueryWrapper<>();
//        if (name!=null && name!="" && !name.equals("靠") ){
//            queryWrapper.like("name",name);
//        }
//        if (list != null && !list.isEmpty()) {
//            queryWrapper.in("class_grade_level", list); // 假设classLevel是学生表中表示班级等级的字段
//        }
//        List<StuInfo> stuInfos = stuMapper.selectList(queryWrapper);
//        System.out.println("我是数组"+list);
//        for (StuInfo stuInfo : stuInfos) {
//            System.out.println(stuInfo.getName());
//        }
//        System.out.println(stuInfos);
//        return null;
    }

    @Override
    public String addOrUpdateStuInfo(StuInfo stuInfo) {

        return stuInfoDao.addOrUpdateStuInfo(stuInfo);
    }

    @Override
    public String deleteStuInfo(Long stuId) {
        return stuInfoDao.deleteStuInfo(stuId);
    }

    @Override
    public IPage<StuInfo> stuInfoListPage(int currentPage, int limit) {
        return stuInfoDao.stuInfoListPage(currentPage,limit);
    }


    @Override
    public boolean getStuByBindCode(String bindCode) {
        return stuInfoDao.getStuByBindCode(bindCode);
    }

    @Override
    public StuInfo getStuByName(String stuName) {
        return stuInfoDao.getStuByName(stuName);
    }

}
